package 剑指Offer._2130;

/**
 * @author yzh
 * @version 1.0
 * @date 2021/7/26 8:56
 * 调整数组顺序使奇数位于偶数前面
 * 算法：双指针
 * 定义两个指针 pre、tail
 * pre 指向的数是奇数时，就 ++，tail 指向偶数时，就 ++
 * 跟快排差不多
 */
public class _21 {

    public int[] exchange(int[] nums) {
        int pre = 0, tail = nums.length - 1;
        while (pre < tail) {
            while (pre < tail && nums[pre] % 2 != 0) ++pre;
            while (pre < tail && nums[tail] % 2 == 0) --tail;
            int tmp = nums[pre];
            nums[pre] = nums[tail];
            nums[tail] = tmp;
        }
        return nums;
    }

}
